package src;

import java.util.Random;

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author usuario_local
 */

public class Usuario {

    

    //Atributos
    private int usr_id;
    private String usr_nombre;
    private String usr_pass;
    private Permisos usr_permisos;

    // Getters & Setters
    public int getID(){
        return usr_id;
    }

    public String getNombre(){
        return usr_nombre;
    }

    // Seria lo suyo mirar un poco mas la seguridad aqui
    public String getPass(){
        return usr_pass;
    }

    // Tocar luego, quizá el enum no vaya aqui
    public Permisos getPermisos(){
        return usr_permisos;
    }

    // Hay que mirar que los nombres no esten duplicados
    public void setNombre(String nombre){
        usr_nombre = nombre;
    }

    public void setPass(String pass){
        usr_pass = pass;
    }

    public void setPermisos(Permisos p){
        usr_permisos = p;
    }

    // Metodos auxiliares
    private int generarID(int max){
        Random generador = new Random(max);
        int idgenerada = generador.nextInt();
        return idgenerada;
    }

    // Crear un administrador por defecto
    public void crearAdmin(){
        usr_id = generarID(123456);
        usr_nombre = "admin";
        usr_pass = "admin";
        usr_permisos = Permisos.ADMIN;
    }

    // Constructora
    // Hay que revisar que los nombres de usuario no se dupliquen
    public Usuario(String nombre, String pass){
        usr_id = generarID(123456);
        usr_nombre = nombre;
        usr_pass = pass;
        usr_permisos = Permisos.GUEST;
    }    

    public boolean equals(Usuario t){
        if (this.usr_nombre.equals(t.usr_nombre)) return true;
        else return false;        
    }

    public int compare(Usuario u1){
        return this.usr_permisos.compare(u1.usr_permisos);
    }

    @Override
    public String toString(){
        return this.usr_nombre + ": " + this.usr_permisos.toString();
    }

    public String[] toArray(){
        String[] aux= new String[2];
        aux[0] = this.usr_nombre;
        aux[1] = this.usr_permisos.toString();
        return aux;
    }

}
